package org.ccpp.portal.utils;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.ccpp.portal.emails.EmailAutenticacion;
import org.ccpp.portal.sql.SQLBasico;

public class UtilsMail {

	public static boolean activado=true;
	
	public static boolean enviarMensaje(String destinatario,String asunto,String cuerpo){
		SQLBasico bas=new SQLBasico();
		try{
			asunto="Cooperativas de programadores - " + asunto;
			String servidor_mail_smtp="mail.cooperativasdeprogramadores.com";
			String servidor_mail_pop="mail.cooperativasdeprogramadores.com";
			String usuario_mail="administrador@cooperativasdeprogramadores.com";
			String clave_mail="";
			try{
				bas.conectar();
				clave_mail=bas.getConfiguracion("clave_mail");
			}catch(Exception e){
				e.printStackTrace();
			}
			try{ bas.desconectar(); }catch(Exception e){}
			
			String url_dominio_origen="mail.cooperativasdeprogramadores.com";
			String remitente=usuario_mail;
			
			Properties props = new Properties();
		    props.put("mail.smtp.host", servidor_mail_smtp);
		    props.put("mail.smtp.auth", "true");
		    props.put("mail.smtp.user", usuario_mail);
		    props.put("mail.smtp.password", clave_mail);		    
		    Session sesion = Session.getInstance(props, new EmailAutenticacion(usuario_mail, clave_mail));
		    
		    sesion.setPasswordAuthentication(new URLName(url_dominio_origen), new PasswordAuthentication(usuario_mail, clave_mail));

		    MimeMessage mensaje = new MimeMessage(sesion);
		    mensaje.setFrom(new InternetAddress(remitente));
		    mensaje.addRecipient(Message.RecipientType.TO, new InternetAddress(destinatario));
		    mensaje.setSubject(asunto);
		    mensaje.setContent(cuerpo, "text/html");
		    mensaje.saveChanges();
		    
		    Transport mta =null;
		    try{
		    	mta = sesion.getTransport("smtp");
		        mta.connect(url_dominio_origen, usuario_mail, clave_mail);
		        try{
		            mta.send(mensaje);
		        }catch(SendFailedException ex){return false;}
		    }catch(Exception ex){
		    	ex.printStackTrace();
		        System.out.println("Cartero: Error al enviar "+ex.toString());
		    }
		    try{mta.close();}catch(Exception e2){}
		}catch(Exception ex){
			return false;
		}
		return true;
	}
}
